package cn.iocoder.yudao.module.resource.controller.admin.material.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 资源素材 Response VO
 *
 * @author 芋道源码
 */
@Schema(description = "管理后台 - 资源素材 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ResourceMaterialRespVO {

    @Schema(description = "资源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("资源ID")
    private Long id;

    @Schema(description = "资源标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "精美头像")
    @ExcelProperty("资源标题")
    private String title;

    @Schema(description = "资源描述", example = "这是一个精美的头像素材")
    @ExcelProperty("资源描述")
    private String description;

    @Schema(description = "资源类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty(value = "资源类型", converter = DictConvert.class)
    @DictFormat("resource_material_type")
    private Integer type;

    @Schema(description = "缩略图URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://example.com/thumb.jpg")
    @ExcelProperty("缩略图URL")
    private String thumbnailUrl;

    @Schema(description = "原图URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://example.com/original.jpg")
    @ExcelProperty("原图URL")
    private String originalUrl;

    @Schema(description = "文件大小（字节）", example = "102400")
    @ExcelProperty("文件大小")
    private Long fileSize;

    @Schema(description = "图片宽度（像素）", example = "1920")
    @ExcelProperty("图片宽度")
    private Integer width;

    @Schema(description = "图片高度（像素）", example = "1080")
    @ExcelProperty("图片高度")
    private Integer height;

    @Schema(description = "是否免费", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty(value = "是否免费", converter = DictConvert.class)
    @DictFormat("resource_is_free")
    private Integer isFree;

    @Schema(description = "下载次数", example = "100")
    @ExcelProperty("下载次数")
    private Integer downloadCount;

    @Schema(description = "收藏次数", example = "50")
    @ExcelProperty("收藏次数")
    private Integer collectCount;

    @Schema(description = "浏览次数", example = "1000")
    @ExcelProperty("浏览次数")
    private Integer viewCount;

    @Schema(description = "创作者ID", example = "1001")
    @ExcelProperty("创作者ID")
    private Long creatorId;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty(value = "状态", converter = DictConvert.class)
    @DictFormat("resource_audit_status")
    private Integer status;

    @Schema(description = "审核备注", example = "审核通过")
    @ExcelProperty("审核备注")
    private String auditRemark;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
